Dynamic loading

forName()
Class.forName() 메서드를 이용하여 동적 로딩(dynamic loading) 할 수 있다.
Class pClass=Class.forName("classex.Person");
String className="classex.Person";
Class pClass=Class.forName(className);
Dynamic Loading(동적 적재)
프로세스가 시작될 때 그 프로셋의 주소 공간 전체를 메모리에 올려놓는 거시 아니라 호출 될 때 해당 루틴을 메모리에 적재하는 방식

예를 들어 mySQL과 같은 데이터 베이스를 컴파일 할 때, 모든 데이터베이스 라이브러리(드라이버)를 컴파일 하지 않고,
시스템 구동할 때, 어떤 데이터베이스와 연결할지만 결정되면 해당 드라이버만 로딩한다.
loading

Overlay
오버레이는 메모리보다 프로세스가 더 클 때 사용되는 기법이다.
위 그림처럼 symbol table 과 common routine 그리고 pass1, pass2로 이루어진 프로그램이 있을때,
pass1 이 수행된 이 후 pass2가 실행된다면, pass1을 메모리에서 실행한 후 pass2를 메모리에 올려서 실행하는  기법이다.

Overlay는 운영체제가 아닌 프로그래머가 적용하는 기법이다.
현재는 대부분이 가상메모리 환경에서 프로그램이 동작하기 때문에 오버레이 방식을 사용할 경우가 적다.